In category theory, a branch of mathematics, a sieve is a way of choosing arrows with a common codomain. It is a categorical analogue of a collection of open subsets of a fixed open set in topology. In a Grothendieck topology, certain sieves become categorical analogues of open covers in topology.
Let C be a category, and let c be an object of C. A sieve S on c is a subfunctor of Hom(−, c), i.e., for all objects c′ of C, S(c′) ⊆ Hom(c′, c), and for all arrows f:c″→c′, S(f) is the restriction of Hom(f, c), the pullback by f (in the sense of precomposition, not of fiber products), to S(c′).
Put another way, a sieve is a collection S of arrows with a common codomain which satisfies the functoriality condition, "If g:c′→c is an arrow in S, and if f:c″→c′ is any other arrow in C, then the pullback S(f)(g) = gf is in S." Consequently sieves are similar to right ideals in ring theory or filters in order theory.
The most common operation on a sieve is pullback. Pulling back a sieve S on c by an arrow f:c′→c gives a new sieve f*S on c′. This new sieve consists of all the arrows in S which factor through c′.
There are several equivalent ways of defining f*S. The simplest is:
A more abstract formulation is:
Here the map Hom(−, c′)→Hom(−, c) is Hom(f, c′), the pullback by f.
The latter formulation suggests that we can also take the image of S×Hom(−, c)Hom(−, c′) under the natural map to Hom(−, c). This will be the image of f*S under composition with f. For each object d of C, this sieve will consist of all arrows fg, where g:d→c′ is an arrow of f*S(d). In other words, it consists of all arrows in S that can be factored through f.
If we denote by ∅c the empty sieve on c, that is, the sieve for which ∅(d) is always the empty set, then for any f:c′→c, f*∅c is ∅c′. Furthermore, f*Hom(−, c) = Hom(−, c′).
Let S and S′ be two sieves on c. We say that S ⊆ S′ if for all objects c′ of C, S(c′) ⊆ S(c′). For all objects d of C, we define (S ∪ S′)(d) to be S(d) ∪ S′(d) and (S ∩ S′)(d) to be S(d) ∩ S′(d). We can clearly extend this definition to infinite unions and intersections as well.
If we define SieveC(c) (or Sieve(c) for short) to be the set of all sieves on c, then Sieve(c) becomes a partially ordered under ⊆. It is easy to see from the definition that the union or intersection of any family of sieves on c is a sieve on c, so Sieve(c) is a complete lattice.
A Grothendieck topology is a collection of sieves subject to certain properties. These sieves are called covering sieves. The set of all covering sieves on an object c is a subset J(c) of Sieve(c). J(c) satisfies several properties in addition to those required by the definition:
Consequently, J(c) is also a distributive lattice, and it is cofinal in Sieve(c).